home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / internet / irc_i_dodatki / eggdrop / eggdrop11.lha / scripts / samples.tcl < prev    next >
Text File  |  1997-01-15  |  2KB  |  71 lines

  1. #
  2. # some examples of extending eggdrop with TCL
  3. #
  4. # the following dcc commands are added:
  5. #   bind <type> <flags> <command> <proc>
  6. #     (does exactly what the Tcl 'bind' command does)
  7. #   unbind <type> <flags> <command> <proc>
  8. #     (removes a binding)
  9. #   report
  10. #     (an alias for 'status' -- but only requires the +o flag)
  11. #
  12. # the following public command is added (for fun & example):
  13. #   gross
  14. #     (makes the bot say "yeah, gross!")
  15. #
  16. # the following msg command is added (for cuteness):
  17. #   rose <nickname> [optional message]
  18. #     (sends a rose to someone)
  19. #
  20.  
  21. proc putchan {chan what} {
  22.   putserv "privmsg $chan :$what"
  23. }
  24.  
  25. # the bind command
  26. proc cmd_bind {hand idx arg} {
  27.   dccsimul $idx ".tcl bind $arg"
  28. }
  29. bind dcc n bind cmd_bind
  30.  
  31. # the unbind command
  32. proc cmd_unbind {hand idx arg} {
  33.   dccsimul $idx ".tcl unbind $arg"
  34. }
  35. bind dcc n unbind cmd_unbind
  36.  
  37. # make a dcc command called 'report' that is just an alias for 'status',
  38. # but only requires +o to use
  39. bind dcc o report *status
  40.  
  41. # respond to "gross" on a channel :)
  42. proc pub_gross {nick uhost hand chan args} {
  43.   putchan $chan "yeah, gross!"
  44.   return 1
  45. }
  46. bind pub - gross pub_gross
  47.  
  48. # the "rose" command via msg
  49. proc putnot {nick msg} { puthelp "NOTICE $nick :$msg" }
  50. proc msg_rose {nick uhost hand rest} {
  51.   global botnick
  52.   if {$rest == ""} {
  53.     putnot $nick "Usage: /msg $botnick rose <nick> \[message\]"
  54.     putnot $nick "  sends a rose to <nick>, with the optional \[message\] on"
  55.     putnot $nick "  an attached card"
  56.     return 0
  57.   }
  58.   set who [lindex $rest 0]
  59.   set msg [lrange $rest 1 end]
  60.   putnot $who "$nick sends you a single rose:"
  61.   putnot $who "   ---<-'-@"
  62.   if {$msg != ""} {
  63.     putnot $who "There is an attached note which reads:"
  64.     putnot $who "  $msg"
  65.   }
  66.   putnot $nick "Rose delivery attempted to $who! :-)"
  67.   return 1
  68. }
  69. bind msg - rose msg_rose
  70.  
  71.